﻿function backupCode(username) {
	if (refreshWin('backupCode_' + username)) return;

	var alltime = new Ext.form.Radio({
				name : 'timespan',
				boxLabel : '所有时间',
				checked : true
			});
	var selecttime = new Ext.form.Radio({
				name : 'timespan',
				boxLabel : '开始时间',
				width : 75
			});
	var lblendtime = new Ext.form.Label({
				text : '结束时间:'
			});
	var starttime = new Ext.form.DateField({
				format : 'Y-m-d',
				flex : 1,
				disabled : true,
				validator : function(v) {
					if (!selecttime.checked || !Ext.isEmpty(v))
						return true;
					else
						return '请选择开始时间';
				}
			});
	var endtime = new Ext.form.DateField({
				format : 'Y-m-d',
				flex : 1,
				disabled : true,
				validator : function(v) {
					if (!selecttime.checked) return true;
					if (Ext.isEmpty(v)) return '请选择结束时间';
					if (Ext.isEmpty(starttime.getRawValue())) return true;
					if (string2time(starttime.getRawValue()) - string2time(v) > 0) return '结束时间不能比开始时间小';
					return true;
				}
			});
	var btnfind = new Ext.Button({
				text : '检索',
				iconCls : 'search-icon',
				width : 75,
				handler : onfind
			});
	var txttimes = new Ext.form.TextField({
				fieldLabel : '通过次数',
				anchor : '100%',
				readOnly : true
			})
	var txtprob = new Ext.form.TextField({
				fieldLabel : '通过题数',
				anchor : '100%',
				readOnly : true
			});
	var tip1 = new Ext.form.Label({
				text : '提示：1、只会备份AC的代码。'
			});
	var tip2 = new Ext.form.Label({
				text : '　　　2、备份的代码会在头部适当增加注释。'
			});
	var tip3 = new Ext.form.Label({
				text : '　　　3、每道题如有多次提交AC，则会备份为一个文件夹。'
			});
	alltime.on('check', function(e, v) {
				starttime.setDisabled(v);
				endtime.setDisabled(v);
			});
	selecttime.on('check', function(e, v) {
				starttime.setDisabled(!v);
				endtime.setDisabled(!v);
			});

	var form = new Ext.FormPanel({
				frame : true,
				bodyStyle : 'padding: 0px 10px 0px 10px',
				items : [{
							items : alltime
						}, {
							layout : 'hbox',
							bodyStyle : 'padding-top:5px',
							items : [selecttime, starttime]
						}, {
							layout : 'hbox',
							bodyStyle : 'padding-top:5px',
							items : [{
										width : 75,
										bodyStyle : 'padding-left:17px;padding-top:5px',
										items : lblendtime
									}, endtime]
						}, {
							layout : 'hbox',
							bodyStyle : 'padding-top:5px',
							labelWidth : 60,
							labelAlign : 'right',
							items : [btnfind, {
										layout : 'form',
										flex : 1,
										items : txttimes
									}, {
										layout : 'form',
										flex : 1,
										items : txtprob
									}]
						}, {
							bodyStyle : 'padding-top:5px',
							items : tip1
						}, new Ext.Toolbar.Spacer(), tip2, new Ext.Toolbar.Spacer(), tip3],
				fbar : new Ext.Toolbar({
							items : [new Ext.Button({
										text : '下载',
										iconCls : 'ok-icon',
										handler : ondown,
										disabled : true
									})]
						})
			});

	var win = new Ext.Window({
				id : 'backupCode_' + username,
				title : '备份代码' + (sys.god ? ' - ' + username : ''),
				iconCls : 'backup-icon',
				manager : ui.windows,
				width : 380,
				minWidth : 320,
				autoHeight : true,
				items : form
			});
	win.show();

	function onfind() {
		if (!form.getForm().isValid()) {
			alertx('请正确输入信息！');
			return;
		}
		inquiryBackupCode({
					username : username,
					allDate : alltime.checked,
					dateBegin : starttime.getRawValue(),
					dateEnd : endtime.getRawValue(),
					success : function(obj) {
						txttimes.setValue(obj.accept);
						txtprob.setValue(obj.problemAccept);
					}
				})
	}
	function ondown() {
		if (!form.getForm().isValid()) {
			alertx('请正确输入信息！');
			return;
		}
		getBackupCode({
					username : username,
					allDate : alltime.checked,
					dateBegin : starttime.getRawValue(),
					dateEnd : endtime.getRawValue()
				});
		win.close();
	}
}

function inquiryBackupCode(obj) {
	ajax({
				url : url.inquiryBackupCode,
				params : {
					username : obj.username,
					allDate : obj.allDate,
					dateBegin : obj.dateBegin,
					dateEnd : obj.dateEnd
				},
				success : obj.success
			});
}

function getBackupCode(obj) {
	openWindowWithPost(url.getBackupCode, ['username', 'allDate', 'dateBegin', 'dateEnd'], [
					obj.username, obj.allDate, obj.dateBegin, obj.dateEnd]);
}
